package org.footballmanager.pandafootball.system.service;

import org.footballmanager.pandafootball.system.domain.FootTeam;
import org.footballmanager.pandafootball.system.domain.FootUser;
import org.footballmanager.pandafootball.system.form.impl.FootTeamSearchForm;
import org.springframework.ui.Model;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface FootTeamService extends BaseService<FootTeam> {
	/**
	 * 是否破产
	 * @param request 请求
	 */
	void isPc(HttpServletRequest request);
	
	/**
	 * 发奖励
	 * @param sj 赛季
	 * @param isRank 是否排名
	 */
	void fjl(Long sj, boolean isRank, HttpServletRequest request);

	/**
	 * 根据用户主键，查找用户team
	 * @param userId 用户主键
	 * @return 球队信息
	 */
	FootTeam getTeamByUserid(Long userId);

	/**
	 * 找出赛季常规赛的前top - buttom名
	 * @param sjid 赛季编码
	 * @param top 第一
	 * @param buttom 最后
	 * @return 球队列表
	 */
	List<FootTeam> findTopClub(Long sjid, Integer top, Integer buttom);

	/**
	 * 根据用户主键获得球队LOGO
	 * @param userId 用户主键
	 * @return logo
	 */
	Long getLogoByUserid(Long userId);
	
	/**
	 * 根据用户主键获得球队缩略图
	 * @param userId 用户主键
	 * @return slt
	 */
	Long getSltByUserid(Long userId);

	/**
	 * 保存新的队伍信息到数据库
	 * @param user 用户
	 * @param qdId 球队主键
	 */
	void saveNewTeam(FootUser user, Long qdId, HttpServletRequest request);

	/**
	 * 根据用户主键给该球队生成初始资金
	 * @param userId 用户主键
	 * @param qdmc 球队名称
	 * @param qdId 球队主键
	 */
	void createZjTeamByUserId(Long userId, Long qdId, String qdmc, HttpServletRequest request);

    /**
     * 根据球队主键获取记录列表
     * @param qdId 球队主键
     * @return 列表
     */
    List<FootTeam> findTeamByQdId(Long qdId);

    /**
     * 翻页方法
     * @param footTeamSearchForm 条件
     * @return 列表
     */
    List<FootTeam> findall(FootTeamSearchForm footTeamSearchForm);

    /**
     * 查询
     * @param entityname 实体类名
     * @param map 参数
     * @param footTeamSearchForm 条件
     */
    void search(String entityname, Model map, FootTeamSearchForm footTeamSearchForm);

    /**
     * 删除所有
     * @param footTeamSearchForm 条件
     * @param request 请求
     */
    void deleteAll(FootTeamSearchForm footTeamSearchForm, HttpServletRequest request);
}